package com.cy.pj.sys.service.impl;

import com.cy.pj.common.pojo.CheckBox;
import com.cy.pj.sys.dao.SysRoleDao;
import com.cy.pj.sys.dao.SysRoleMenuDao;
import com.cy.pj.sys.pojo.SysRole;
import com.cy.pj.sys.service.SysRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
@Service
public class SysRoleServiceImpl implements SysRoleService{
        @Autowired
        private SysRoleDao sysRoleDao;
        @Autowired
        private SysRoleMenuDao sysRoleMenuDao;
        @Override
        public List<SysRole> findRoles(SysRole sysRole) {
            return sysRoleDao.selectRoles(sysRole);
        }

        @Override
        public SysRole findById(Integer id) {
            return sysRoleDao.selectById(id);
        }

        @Transactional
        @Override
        public int saveRole(SysRole sysRole) {
            //新增角色自身信息
            int rows=sysRoleDao.insertRole(sysRole);
            //新增角色菜单关系数据
            sysRoleMenuDao.insertRoleMenus(sysRole.getId(),sysRole.getMenuIds());
            return rows;
        }
        @Override
        public int updateRole(SysRole sysRole) {
            //1.更新角色自身信息
            int rows=sysRoleDao.updateRole(sysRole);
            //2.更新角色菜单关系数据
            //2.1删除原有关系
            sysRoleMenuDao.deleteByRoleId(sysRole.getId());
            //2.2添加新的关系
            sysRoleMenuDao.insertRoleMenus(sysRole.getId(),
                    sysRole.getMenuIds());
            return rows;
        }

        @Override
        public List<CheckBox> findCheckRoles() {
            return sysRoleDao.selectCheckRoles();
        }
}
